﻿using System;

namespace ProjectResistance.Shell.Constants
{
    enum PixelFormat
    {
        Indexed = 0x00010000, // Indexes into a palette
        GDI = 0x00020000, // Is a GDI-supported format
        Alpha = 0x00040000, // Has an alpha component
        PAlpha = 0x00080000, // Pre-multiplied alpha
        Extended = 0x00100000, // Extended color 16 bits/channel
        Canonical = 0x00200000,

        Undefined = 0,
        DontCare = 0,

        F1bppIndexed = (1 | (1 << 8) | Indexed | GDI),
        F4bppIndexed = (2 | (4 << 8) | Indexed | GDI),
        F8bppIndexed = (3 | (8 << 8) | Indexed | GDI),
        F16bppRGB555 = (5 | (16 << 8) | GDI),
        F16bppRGB565 = (6 | (16 << 8) | GDI),
        F16bppARGB1555 = (7 | (16 << 8) | Alpha | GDI),
        F24bppRGB = (8 | (24 << 8) | GDI),
        F32bppRGB = (9 | (32 << 8) | GDI),
        F32bppARGB = (10 | (32 << 8) | Alpha | GDI | Canonical),
        F32bppPARGB = (11 | (32 << 8) | Alpha | PAlpha | GDI),
        F48bppRGB = (12 | (48 << 8) | Extended),
        F64bppARGB = (13 | (64 << 8) | Alpha | Canonical | Extended),
        F64bppPARGB = (14 | (64 << 8) | Alpha | PAlpha | Extended),
        Max = 15,
    }
}
